#ifndef QUNITS_H
#define QUNITS_H


#include <QBaseLib.h>
#include "CAppComm.h"

/***************************** 工具  ***************************/
// 主页顶部 一周
//#define TIMER_MONDAY                "星期一"

//#define TIMER_TUESDAY               "星期二"

//#define TIMER_WEDNESDAY             "星期三"

//#define TIMER_THURSDAY              "星期四"

//#define TIMER_FRIDAY                "星期五"

//#define TIMER_SATURDAY              "星期六"

//#define TIMER_SUNDAY                "星期天"

typedef enum _tDateMode
{
	dateMode_invalid = 0,// 无效类型
	dateMode_YMD = 1,	// 年月日
	dateMode_DMY,		// 日月年
	dateMode_YM,		// 年月
	dateMode_MD,		// 月日
}T_DateMode;// 日期格式
#define GET_NETWORK_4G_ERR_COUNT 3

class QUnits
{

public:

	//初始化构造函数
    explicit QUnits();
	//析构函数
    ~QUnits();

	/**
     * 获取当前时间
     *
     * @param - in 小时:hh 分钟:mm 秒:ss  例:hh:mm:ss 输出 01:01:01
     * @note -
     * @return - QString
     */
	static QString GetCurrentTimer(QString format);

	/**
     * 获取当前日期
     *
     * @param - in spacer 间隔符，比如输入"/" 输出2020/12/17 输入"-" 输出2020-12-17,输入为空，输出 2020年12月17日
     * @note -
     * @return - 2020/12/17
     */
	static QString GetCurrentDate(QString spacer = "", T_DateMode dateMode = dateMode_YMD);

	/**
     * 获取当前周几
     *
     * @param -
     * @note -
     * @return - 星期五
     */
	static QString GetCurrentWeek();

	/**
     * 绘制矩形框
     *
     * @param - in painter 	绘制指针
     * @param - in x 		起点X坐标
     * @param - in y 		起点Y坐标
     * @param - in w 		矩形宽度
     * @param - in h 		矩形高度
     * @param - in colour	矩形颜色
     * @note -
     * @return - 2020/12/17
     */
	static void drawectanglRe(QPainter *painter, int x, int y, int w, int h,QColor colour);

	/**
	 * 获取指定目录下指定文件类型的所有文件
	 *
	 * @param - in dir 目录路径
	 * @param - in filter 指定文件类型（可以多选）
	 * @note -
	 * @return - 文件列表
	 */
	static QList<QFileInfo> getDirSpecifyTypeAllFile(QString dirPath, QStringList filter);

	/**
	 * 文字转图片
	 *
	 * @param - in text 文字
	 * @param - in imgW 图片宽度
	 * @param - in imgH 图片高度
	 * @param - in wrap 换行符
	 * @note -
	 * @return - jpg文件路径
	 */
	static string textToImg(string text, int imgW, int imgH, const string wrap = string("\n"));

	/**
	 * 判断OK键是否正确
	 *
	 * @param - in key 输入按键
	 * @note -
	 * @return - 是否正确
	 */
	static bool isOk(int key);

	/**
	 * 判断Clean键是否正确
	 *
	 * @param - in key 输入按键
	 * @note -
	 * @return - 是否正确
	 */
	static bool isClean(int key);

	/**
	 * 年月日转时间戳
	 *
	 * @param - in y 年
	 * @param - in m 月
	 * @param - in d 日
	 * @param - out outData 时间戳
	 * @note -
	 * @return - 是否正确转换
	 */
	static bool ymdToTimestamp(int y, int m, int d, uint16_t &outData);

	/**
	 * 年月日时分秒转时间戳
	 *
	 * @param - in y 年
	 * @param - in m 月
	 * @param - in d 日
	 * @param - in h 时
	 * @param - in min 分
	 * @param - in s 秒
	 * @param - out outData 时间戳
	 * @note -
	 * @return - 是否正确转换
	 */
	static bool ymdToTimestamp(int y, int m, int d,int h, int min, int s, uint64_t &outData);

private:
	static int m_Net4GErrcount;// 没找到4G设备计数器

};

#endif // QUNITS_H
